#练习1，阶乘
def fac(n):
    if n == 1:
        return 1
    else:
        return n * fac(n-1)

num = int(input('请输入一个整数：'))
print(fac(num))

#练习2，反向输出字符串
def str_rev(s):
    if s == '':
        return ''
    else:
        return str_rev(s[1:]) + s[0]

str1 = input("请输入一个字符串：")
print(str_rev(str1))

#练习3，
'''猴子屯了很多香蕉，它每天吃一半再多吃一个，吃到第十天再想吃的时候
，发现只剩下一个，求最开始多少个'''
def monkey(d):
    if d == 1:
        return 1
    else:
        return (monkey(d - 1) + 1) * 2

day = int(input("输入今天是第几天："))
print(monkey(day))